配置变更

本文是v2.3.0-> v2.7.0的配置变更说明文档

说明:在2.0.8版本及以后的安装包中的配置文件只包含了最精简化的配置,安装包中的配置文件已经足够满足hyperchain的正常使用。若您是第一次使用hyperchain,且希望更深入地使用hyperchain时,可以查阅相关功能的使用手册从而知晓配置文件的修改方法;若您以前已经部署过hyperchain,那么仍可以沿用原先的全量配置文件,只不过需要参考《配置变更》对一些配置上的变化进行确认。

增删节点

新增配置

  • 配置文件路径:configuration/config/global/ns_genesis.toml
  • 变更所述模块:genesis
  • 变更原因:将链的ca模式上链,且不可更改
配置项 含义
genes is.ca_mode ca模式,配置后不支持修改。支持的ca模式有:中 心化ca,即Center;分布式ca,即Distributed;无ca,即none
genes is.root_ca 当ca模式为中心化ca,即Center时,配置信任的root ca

删除配置

  • 配置文件路径:configuration/config/global/ns_static.toml
  • 变更所述模块:encryption, distributedCA
  • 变更原因:删除是否开启分布式ca及是否启用Ecert的开关,通过ca_mode控制
配置项 含义
encryption.check.enable 是否启用ecert
distributedCA.enable 是否启用分布式ca

不再支持rockit

嵌入式BaaS

新增配置

  • 配置文件路径:configuration/config/system.toml
  • 变更所述模块:baas
  • 变更原因:新增内嵌版BaaS开关
配置项 含义
baas.enable 是否开启内嵌版BaaS

新增配置

  • 配置文件路径:configuration/config/dynamic.toml
  • 变更所述模块:port
  • 变更原因:新增内嵌版BaaS访问接口
配置项 含义
port.baas baas的访问端口

NoxBFT

新增配置

  • 配置文件路径:configuration/config/global/ns_static.toml
  • 变更所述模块:consensus.hotstuff
  • 变更原因:共识checkpoint协议重构以及稳定性优化
配置项 默认值 含义
consensus.hotstuf f.checkpoint_interval 100 配置NoxBFT允许最大不生成检查点的 轮次数,超过此数量未生成检查点时, 会发起验证区块提案以强制生成检查点
co nsensus.hotstuff.chec kpoint_mem_cache_size 2 配置NoxBFT在blo cktree中允许缓存几个检查点中的区块
consensus.hotstuff .backward_round_limit 10 配置 NoxBFT落后多少轮后去调用syncchain 同步,落后的轮次低于此数量时,只会 采用fetch的方式拉取落后的共识区块
co nsensus.hotstuff.memp ool.commit_cache_size 3 配置mempool 允许缓存多少个提交过的区块中的交易

轻节点

新增配置

  • 配置文件路径:configuration/config/global/ns_static.toml
  • 变更所述模块:executor
  • 变更原因:新增lp节点类型
配置项 默认值 含义
executor.lp.send_limit 500 vp节点给lp节点 发送的一批区块的数量限制
executor.lp.resend_interval 5s p节点给lp节点、lp节点给 vp节点重发数据的时间间隔

gas排序

配置项变更

  • 配置文件路径:configuration/global/ns_static.toml
  • 变更所述模块:consensus
  • 变更原因:新增了交易池类型”priced”用于NFT等需求中支持打包时根据交易的优先级(通常指gas price)进行排序。
配置项 含义 变更类型
consensus.hotst uff.mempool.type 启动ho tstuff算法时使 用的交易池类型 新增交易池类型”pric ed”,用于支持hotstuff算法按照gas price进行打包排序

sync_chain模块

配置项变更

  • 配置文件路径:configuration/global/ns_static.toml
  • 变更所述模块:sync
  • 变更原因:sync_chain流程重构,使用一套新的配置项。目前,sync_chain相关的配置完全处于[sync]标签下,原[executor.sync_chain]下的配置均已弃用。
[sync]
    [sync.target]
        epoch  = 0
        height = -1
        hash = ""
    [sync.provider]
        available_mem = "100mb"
    [sync.fetcher]
        priority = "block"
        sync_journal_receipt = false
        sync_hpc_blocks = false
        batch_block_num = 50
        ledger_part_size = "100kb"
        [sync.fetcher.task]
            timeout = "7s"
            limit = 10
配置项 含义 配置规则
sync.target.epoch 节点启动时预期同步的epoch值
sync.target.height 节点启动时预期同步的区块号 要求该配置项 >= sync.targ et.epoch对应的ch eckpoint的区块号
sync.target.hash sync. target.height对应的区块hash
sync.prov ider.available_mem 提供数据端每 一次提供的数据占用内存上限  
syn c.fetcher.priority 优先同步更 多的区块还是更高的snapshot 合法可选值为:
sync.fetcher.sy nc_journal_receipt 拉取区块数据时 ,是否同时拉取journal和rece ipt(如果配置为true,则会执 行journal,否则会执行交易)
sync.fetch er.sync_hpc_blocks 是否要同步hype rchain1.8产生的历史数据(只 针对从1.8升级到2.X的场景) 该配置项如果为 true,则节点一定 采用“优先同步更 多区块”的模式, 即sync.fetcher. priority不再生效
sync.fetch er.batch_block_num 每一批拉取的数据 包数量(该配置通用于拉取数 据的各个流程中,表示一个请 求包含多少个数据包的拉取)
sync.fetche r.ledger_part_size 当需要同 步账本时,账本数据会被视为 一个文件,该配置项表示一个 账本文件数据包分片的大小( 例如:账本数据大小为1M,该 配置项为50kb;那么一共需要21 [1024/50向上取整]个数据包)  
sync.fe tcher.task.timeout 拉取 数据流程内部会将拉取一批ba tch_block_num个数据包的过程 视为一个task,该配置项表示 :系统时间每经过多久回尝试 一次将未完成的task重新发送
sync. fetcher.task.limit 该配置项表示同时可以有 多少个未完成的task并行执行